<?php
class Permission{
	private $blog;
	private $con;
	private $table;
	
	public function __construct(&$blog){
		$this->blog =& $blog;
		$this->con	=& $blog->con;
		$this->table= $this->blog->prefix.'group_permission';
	}
	
	public function get_permission($group_id,$categ_id=''){
		//dans le cas ou les 2 clés sont fournis on retourne true ou false suivant l'autorisation définie pour le couple group/categorie
		if($categ_id!=''){
			//renvoie par defaut false si l'occurence n'existe pas ou bien qu'elle est définie a non autorisé
			$rs = $this->con->select('SELECT permission FROM '.	$this->table.
									' WHERE group_id=\''.$group_id.'\' AND category_id=\''.$categ_id.'\';');
			if ($rs->isEmpty()) {return(false);}
			return $rs->permission;
		}else{
			// si seul la clé du group est fourni on retourne un tableau de chacune des permissions des catégories pour le groupe
			$rs = $this->con->select('SELECT category_id FROM '.
				  $this->table.' WHERE group_id=\''.$group_id.'\' AND PERMISSION=1 ORDER BY category_id ASC;');
			if ($rs->isEmpty()) {return(false);}
			while( $rs->fetch() ){
				$return[] = $rs->category_id; 
			}
			return $return;
		}
	}
		
	public function upd_permission($group_id,$categ_id,$permission){
		global $core;
		$cur = $this->con->openCursor($this->table);
		$cur->group_id=$group_id;
		$cur->category_id=$categ_id;
		$cur->permission=$permission;
		
		try{
			$rs = $this->con->select('SELECT * FROM '.$this->table.' WHERE group_id='.$group_id.' AND category_id='.$categ_id);
			if(!$rs->isEmpty()){
				$cur->update('WHERE (group_id= '.$group_id.' AND category_id='.$categ_id.') LIMIT 1;');
			}else{
				$cur->insert();
			}
		}catch(Exception $e){
			$core->error->add($e->getMessage());
		}
	}
}
?>